import { IsOptional, IsInt, Min, IsString } from 'class-validator';
import { Type } from 'class-transformer';

/**
 * 商品查询数据传输对象
 * 用于验证和传递商品列表查询的请求参数
 */
export class ProductQueryDto {
  /**
   * 页码
   * @type {number}
   * @required 否
   * @default 1
   * @minimum 1
   * @example 1
   */
  @IsOptional()
  @Type(() => Number)
  @IsInt()
  @Min(1)
  page: number = 1;

  /**
   * 每页条数
   * @type {number}
   * @required 否
   * @default 10
   * @minimum 1
   * @example 10
   */
  @IsOptional()
  @Type(() => Number)
  @IsInt()
  @Min(1)
  limit: number = 10;

  /**
   * 搜索关键词
   * @type {string}
   * @required 否
   * @example '手机'
   */
  @IsOptional()
  @IsString()
  search?: string;

  /**
   * 分类ID
   * @type {string}
   * @required 否
   * @example '1'
   */
  @IsOptional()
  @IsString()
  categoryId?: string;
}